1. Field of the Invention
The present invention relates generally to data flow type information processors, and more particularly, data flow type information processors for executing data flow program including instructions for performing a numerical value operation processing or a logical operation processing with respect to two data and a processing method therefor.
2. Description of the Background Art
In a conventional von Neuman type computer, various instructions are stored in advance as program in program memories, and addresses in the program memories are sequentially designated by a program counter, so that the instructions are sequentially read out to he executed.
On the other hand, a data flow type information processor is one type of non-von Neuman type computers having no concept of sequential execution of instructions by a program counter. Such a data flow type information processor employs architecture based on a parallel processing of instructions. In the data flow type information processor, immediately after data which are objects of an operation are collected, an instruction becomes executable and a plurality of instructions are simultaneously driven by the data, so that program is executed in parallel in accordance with the natural flow of the data. As a result, it is considered that the time required for the operation is significantly reduced.
FIG. 16 is a block diagram showing one example of a structure of a conventional data flow type information processor. FIG. 17 is a diagram showing one example of a field arrangement of a data packet to be processed by the information processor.
A data packet 60 shown in FIG. 17 includes a destination field 61, an instruction field 62, a data 1 field 63, and a data 2 field 64. The destination field 61 stores destination information, the instruction field 62 stores instruction information, and the data 1 field 63 or the data 2 field 64 stores operand data.
The information processor shown in FIG. 16 includes a program storing portion 1, a data pair detecting portion 2 and an operation processing portion 3. The program storing portion 1 stores data flow program 70 shown in FIG. 18. The program storing portion 1 reads, as shown in FIG. 18, destination information 71, instruction information 72 and copy presence/absence information 73 of the data flow program 70 by addressing based on the destination information of data packet 60 applied as an input, stores the destination information 71 and the instruction information 72 in the destination field 61 and the instruction field 62 of the data packet 60, respectively, and outputs the data packet 60.
The data pair detecting portion 2 queues the data packets 60 supplied from the program storing portion 1 as outputs. More specifically, the data pair detecting portion 2 detects two different data packets having the same destination information, stores operand data of one of the data packets 60, for example, the contents of the data 1 field 63 shown in FIG. 17, in the data 2 field 64 of the other data packet 60, and outputs the other data packet 60. The operation processing portion 3 performs an operation processing based on the instruction information with respect to the data packet 60 output from the data pair detecting portion 2, stores the result of the operation processing in the data 1 field 63 of the data packet 60, and outputs the data packet 60 to the program storing portion 1.
The program storing portion 1 and the data pair detecting portion 2 are coupled to each other by a data transmission path 4. The data transmission path 4 is branched into two and coupled to two input ports of the data pair detecting portion 2. A data packet 60 output from the program storing portion 1 is selectively applied as an input to either of the input ports of the data pair detecting portion 2 in response to the operand data being right operand data or left operand data in the operation processing. In addition, the data pair detecting portion 2 and the operation processing portion 3 are coupled to each other by a data transmission path 5 and the operation processing portion 3 and the program storing portion 1 are coupled to each other by a data transmission path 6.
As the data packets 60 continues to circulate through the program storing portion 1, the data pair detecting portion 2, the operation processing portion 3 and the program storing portion 1, the operation processing proceeds in accordance with the data flow program 70 stored in the program storing portion 1.
Now consider a case where data should be copied in the data flow program 70 to be executed, as shown in FIG. 19. That is, in a case where an operation result, for example, an output of an instruction of addition in FIG. 19 is referred to by two or more of other operations, for example, instructions of multiplication and subtraction in FIG. 19, a copy processing is performed in the program storing portion 1.
The contents of a portion addressed based on the destination information of the applied data packet 60 are first read out from the data flow program 70. At this time, if the copy presence/absence information 73 indicates "absence", the data packet 60 is output with the contents of its destination field 61 and instruction field 62 updated, whereby the processing is completed.
Conversely, if the copy presence/absence information 73 indicates "presence", the data packet 60 is output with its contents of the destination field 61 and the instruction field 62 updated, and the subsequently stored destination information 71, instruction information 72 and copy presence/absence information 73 are read out. If the subsequently read out copy presence/absence information 73 indicates "absence", the data packet 60 is output which stores the same data as that of the input data packet 60 in the data 1 field 63 thereof and stores the destination information 71 and the instruction information 72 which have been read out just now in the destination field 61 and the instruction field 62 thereof,respectively, whereby the processing is completed. If the consequently read out copy presence/absence information 73 indicates "presence", the same copy processing will be further repeated.
In the above described information processor, once the copy processing is performed, a flow ratio of the data packets 60 on the transmission path 6 for the input of the program storing portion 1 to the data packets on the transmission path 4 for the output from the program storing portion 1 becomes 1:2 without fail. Here, the flow ratio of the data packets is a ratio of the number of the data packets passing through these transmission paths per hour.
FIG. 20 shows a flow rate of data packets 60 on each transmission path, assuming that the flow rate of the data packets 60 on the transmission path 4 is 1. The data pair detecting portion 2 outputs one data packet 60 in response to an input of two data packets 60. Therefore, even if it is assumed that the transmission path 4 operates at its largest capacity, only the half of a flow rate of its highest capacity can be obtained on and after the transmission path 5.
As the foregoing, in a copy processing at the program storing portion 1, the transmission paths 5 and 6 operate at only a half the largest capacity thereof. The operation processing portion 3 also operates at half its potential, accordingly, thereby deteriorating the reduction in the performance of the above described information processor during the execution of the program.
FIG. 21 is a block diagram showing another example of a structure of the conventional data flow type information processor.
The information processor of FIG. 21 is provided with two program storing portions 11 and 12. Each of the data packets output from the operation processing portion 3 is applied as an input to either of the program storing portions 11 or 12 through an allotting portion 13. The operation processing portion 3 and the allotting portion 13 are coupled to each other by a data transmission path 6. The allotting portion 13 is coupled to the program storing portions 11 and 12 through data transmission paths 16 and 17, respectively. Furthermore, the program storing portions 11 and 12 are individually coupled to the data pair detecting portion 2 through data transmission paths 14 and 15, respectively.
Functions of the respective portions of the information processor shown in FIG. 21 are completely the same as those of the respective portions of the information processor shown in FIG. 16. The allotting portion 13 allots the data packets output from the operation processing portion 3 to either of the program storing portions 11 or 12 in the order of arrival.
FIG. 22 shows a flow rate of data packets on each transmission path on the assumption-that both of the flow rates of the data packets on the transmission paths 14 and 15 are 1.
In the information processor of FIG. 21, since the allotting portion 13 allots the inputs of the data packets to the program storing portions 11 and 12, the program storing portions 11 and 12 receive the data packets at a rate half the largest capacity. When the copy processing is performed at the program storing portions 11 and 12, the flow rate of the data packets output from the program storing portions 11 and 12 onto the data transmission paths 14 and 15 doubles the flow rate of the data packets applied as inputs to the program storing portions 11 and 12 through the data transmission paths 16 and 17. That is, a flow rate at its largest capacity can be obtained on each of the transmission paths 14 and 15 for inputting the data packets to the data pair detecting portion 2. In addition, a flow rate at its largest capacity can be obtained also on the transmission path 5 for the data packets output from the data pair detecting portion 2, that is, the transmission path 5 for the data packets applied as inputs to the operation processing portion 3.
Accordingly, in the conventional information processor of FIG. 21, the performance of the operation processing portion 3 is enhanced to the maximum, so that theoretically, the effect of the parallel processing can be doubled as compared with the conventional information processor of FIG. 16.
The data flow type information processors shown in FIGS. 16 and 21 are disclosed in, for example, the article entitled "Examinations (1) and (2) on System Structure of Data Driven Type Processor" by Okamoto et al., Collected Papers on the Lectures of 34th National Conference (the first half of 1987) of Information Processing Society, pp. 237-240.
As the foregoing, in order to enhance efficiency of processing by the above described data flow type information processor shown in FIG. 16, a data flow type information processor has been developed which comprises a doubled program storing portion as shown in FIG. 16.
However, since the data flow type information processor shown in FIG. 21 comprises the doubled program storing portion, the entire storage capacity of the program storing portion doubles that of the processor shown in FIG. 16. As a result, the information processor itself is made larger in scale.
Furthermore, since the data packets which circulate through the processing portions in the information processor in the order of execution of the data flow program stored in the program storing portion are always processed in the pattern shown in FIG. 17, data lines (the data transmission paths) connecting the respective processing portions are unnecessarily wide.
More specifically, reading of the data flow program from the program storing portion essentially requires only the contents in the destination field 61 of the data packet 60 which specify the subsequent instruction information but not the contents of the instruction field 62, the data 1 field 63 and the data 2 field 64 of the data packet 60. In addition, the operation processing portion also requires the contents of the instruction field 62, the data 1 field 63 and the data 2 field 64 of the data packet 60, but not the contents of the destination field 61 of the data packet 60, which results in a physically wasteful use of the structure of the information processor.